#include <stm32f10x.h> // Device header
#include "led.hpp"
uint8_t bit_for_read_set = 0;

int main()
{
	led_mode_t led_mode;
	led_mode.led_clear();
	led_mode.led_set(0x3f);
	GPIO_InitTypeDef GPIO_Info;
	//使能时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOA, ENABLE);
	// jtag??
	GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
	//设置亮灯
	GPIO_Info.GPIO_Pin = GPIO_Pin_All;
	GPIO_Info.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_Info.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_Info);
	//设置按键
	GPIO_Info.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_13;
	GPIO_Info.GPIO_Mode = GPIO_Mode_IPU;
	GPIO_Init(GPIOA, &GPIO_Info);
	//点灯
	GPIO_Info.GPIO_Pin = GPIO_Pin_1;
	GPIO_Info.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_Info.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_Info);
	GPIO_Write(GPIOB, 0x77ff);
	led_mode_t::set_LED_gpio();
	while (1)
	{

		bit_for_read_set = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_2); //设置按键A的输入
		GPIO_WriteBit(GPIOB, GPIO_Pin_0, Bit_RESET);				 //设置常亮0
		GPIO_WriteBit(GPIOB, GPIO_Pin_1, Bit_RESET);
		led_mode.led_roll_left();
		// GPIO_WriteBit(GPIOB, GPIO_Pin_3, Bit_SET);
		/**
		f (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_2) == 1)
		{
			GPIO_WriteBit(GPIOB, GPIO_Pin_3, Bit_SET);
		}
		else
		{
			GPIO_WriteBit(GPIOB, GPIO_Pin_3, Bit_RESET);
		}**/
		GPIO_WriteBit(GPIOB, GPIO_Pin_3, (BitAction)bit_for_read_set);
		GPIO_WriteBit(GPIOB, GPIO_Pin_4, (BitAction)GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6));
		GPIO_WriteBit(GPIOB, GPIO_Pin_5, (BitAction)GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_7));
		GPIO_WriteBit(GPIOA, GPIO_Pin_1, (BitAction)GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_13));
	}

	return 0;
}
